/**
**********************************************************************************************************************************************************************************************************************************
* @file:	main.c
* @author:	zinface
* @date:	2022年02月22日 12:17:37 星期二
* @brief:	提供当前文件与源程序及编译器的内置宏信息打印
**********************************************************************************************************************************************************************************************************************************
**/
#include <stdio.h>

void internalvalue() {
    // const char __func__[13] = "interalvalue"
    // 注意如果 __func__ 未被编译器定义，将被重定义为 __FILE__
    printf("__func__: %s\n", __func__); 
    // const char __func__[13] = "interalvalue"
    printf("__FUNCTION__: %s\n", __FUNCTION__); 
    // 打印当前程序文件名的路径
    printf("__FILE__: %s\n", __FILE__); 
    // 打印当前行号的整数
    printf("__LINE__: %d\n", __LINE__); 
    // 打印当前日期的字符串
    printf("__DATE__: %s\n", __DATE__); 
    // 打印当前时间的字符串
    printf("__TIME__: %s\n", __TIME__); 
    // 如果编译器遵循ANSI C标准，它就是个非零值
    printf("__STDC__: %d\n", __STDC__); 

    /*C11中编译器宏定义：
        __DATE__ 进行预处理的日期（"Mmm dd yyyy"形式的字符串文字）// Dec 29 2019
        __FILE__ 当前源代码文件名的字符串文字  // cilent.c
        __LINE__ 当前源代码中的行号的整数常量  // 46
        __TIME__ 源文件编译时间，格式微"hh:mm:ss"  // 09:36:28.
        __func__ 当前所在函数名 // main
    */
}

int	main(int argc, char **argv)
{
    internalvalue();
    return 0;
}
